1. Technical Field of the Invention
The present invention relates to channel and network communication systems and processes and, in particular, to a system and method for increasing write performance in a Fibre Channel (FC) environment.
2. Description of Related Art
There are two kinds of protocols for device communication: channels and networks. Channels, for example, between a master host computer and a slave peripheral device, are designed to transport a large amount of data at very high speeds over relatively small distances with little software overhead once data transmission commences. A channel generally provides a direct or switched point-to-point connection between a master and a slave that is hardware-intensive. Networks, on the other hand, are designed to interface many users and support many transactions, sharing a plurality of hosts and system resources, over medium to large distances. With respect to networks, higher overhead is generally acceptable as long as high connectivity is achieved.
The Fibre Channel Protocol (FCP) is a new generation protocol that combines the best of these two disparate methods of communication in a single Open-Systems-Interface-like (OSI-like) stack architecture. Essentially, the Fibre Channel (FC) is a multi-topology, multi-layer stack with lower-layer-protocols (LLPs) for controlling the physical transport characteristics and upper-layer-protocols (ULPs) for mapping LLP communication to and from higher-level software structures that are compatible with an Operating System. These ULPs include both channel and network protocols such as Intelligent Peripheral Interface (IPI), Small Computer System Interface (SCSI), and Internet Protocol (IP), among others.
It is well-known that devices that engage in either channel or network communication may be categorized as initiators (also sometimes referred to as originators) or targets (also sometimes referred to as responders) or both, depending upon their functionality. Certain specific functions are assigned to either an initiator or a target: (i) an initiator can arbitrate for the communication path and select a target; (ii) a target can request the transfer of command, data, status, or other information to or from the initiator, and (iii) in some instances, a target can arbitrate for the communication path and reselect an initiator to continue a transaction.
For devices that are operable with the Fibre Channel Protocol, only those devices which have the initiator functionality may initiate what is known in the art as a Link Service Request or an Extended Link Service Request. Link Service commands provide Fibre Channel initiators with the ability to perform such tasks as Node Discovery, Abort Requests and Reject Communication frames. The only Link Service command a Fibre Channel target can initiate, for the most part, is a Reject command/frame (LS_RJT).
Typically, in a single initiator FC environment, the initiator device sends out such Link Service Commands as are needed and expects in response thereto an Acknowledgment (LS_ACK) frame or a Reject frame (LS_RJT) from a target. Hereinafter, these LS_ACK and LS_RJT frames will be collectively referred to as response frames. In a multi-initiator environment, on the other hand, an initiator operates as both a recipient and a sender of Link Service commands. Because of these twin roles, such an initiator operates as both a recipient and a sender of a response frame.
It is known in the art that effective data transmission rates are a crucial factor in a communication system. Further, such transmission rates may be critically dependent, at least in part, upon communication path latency, total number of devices and the presence of multiple initiators. In current FC-compatible systems which are typically single-initiator systems, a data write is performed sequentially by sending command frames and data frames separately from the sender to the receiver. Such sequential frame transfer may give rise to inefficient write performance, especially in longer communication paths with increased latency periods. Accordingly, it should be appreciated that there is a significant need for providing an efficient write mechanism in FC environments.
Although various single initiator FC implementations with sequential write capability have been extant for some time, no FC communication system is known that adequately addresses the above-described problems and deficiencies and/or possesses all of the advantages and novel features of the invention described and claimed hereinbelow.
The present invention overcomes the above-identified problems as well as other shortcomings and deficiencies of existing technologies by providing a method for transferring data from an originator to a responder, both of which are disposed in a Fibre Channel environment, comprising the steps of: sending a write command and at least one data frame together from the originator to the responder; and transmitting a status frame back from the responder to the originator, which status frame is provided in response to the completion of the sending step. In a preferred embodiment, the method further comprises the steps of: allocating a selected portion of a Responder-Exchange-Identifier (RX_ID) index associated with the responder, which index comprises a plurality of Responder-Exchange-Identifiers (RX_IDs) wherein the selected portion is uniquely identified with the originator; and transmitting information via a portion of payload in a Acknowledgment frame from the responder to the originator, the information being related to the selected portion.
In another aspect, the present invention is drawn to a system for transferring data in a Fibre Channel (FC) communication environment, which system comprises an originator for initiating a transfer of data; and a responder for receiving said data, wherein the responder allocates a selected portion of a plurality of Responder-Exchange-Identifiers for the exclusive use of the originator pursuant to the data transfer such that the originator can send command and data frames together to the responder.